import static org.junit.Assert.*;

import org.junit.Test;


public class DayTest {
	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 1
	 * Purpose: test consistency
	 * Priority: 3
	 */
	@Test public void getDayTest1() {
	    Year year = new Year(2011);
	    Month month = new Month(12, year);
	    Day day = new Day(17, month);
	    assertEquals(17, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 2
	 * Purpose: test consistency
	 * Priority: 3
	 */
	@Test public void getDayTest2() {
	    Year year = new Year(2008);
	    Month month = new Month(5, year);
	    Day day = new Day(12, month);
	    assertEquals(12, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 3
	 * Purpose: test consistency
	 * Priority: 3
	 */
	@Test public void getDayTest3() {
	    Year year = new Year(2005);
	    Month month = new Month(1, year);
	    Day day = new Day(31, month);
	    assertEquals(31, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 4
	 * Purpose: test consistency
	 * Priority: 3
	 */
	@Test public void getDayTest4() {
	    Year year = new Year(2002);
	    Month month = new Month(2, year);
	    Day day = new Day(28, month);
	    assertEquals(28, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 5
	 * Purpose: test consistency
	 * Priority: 3
	 */
	@Test public void getDayTest5() {
	    Year year = new Year(2002);
	    Month month = new Month(3, year);
	    Day day = new Day(31, month);
	    assertEquals(31, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 6
	 * Purpose: test consistency
	 * Priority: 3
	 */
	@Test public void getDayTest6() {
	    Year year = new Year(2002);
	    Month month = new Month(4, year);
	    Day day = new Day(30, month);
	    assertEquals(30, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 7
	 * Purpose: test consistency
	 * Priority: 3
	 */
	@Test public void getDayTest7() {
	    Year year = new Year(2002);
	    Month month = new Month(5, year);
	    Day day = new Day(0, month);
	    assertEquals(0, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 8
	 * Purpose: test consistency
	 * Priority: 3
	 */
	@Test public void getDayTest8() {
	    Year year = new Year(2002);
	    Month month = new Month(6, year);
	    Day day = new Day(-22, month);
	    assertEquals(-22, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 9
	 * Purpose: test consistency
	 * Priority: 2
	 */
	@Test public void setDayTest1() {
	    Day day = new Day(0, null);
	    day.setDay(17, null);
	    assertEquals(17, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 10
	 * Purpose: test consistency
	 * Priority: 2
	 */
	@Test public void setDayTest2() {
	    Day day = new Day(0, null);
	    day.setDay(12, null);
	    assertEquals(12, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 11
	 * Purpose: test consistency
	 * Priority: 2
	 */
	@Test public void setDayTest3() {
	    Day day = new Day(0, null);
	    day.setDay(31, null);
	    assertEquals(31, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 12
	 * Purpose: test consistency
	 * Priority: 2
	 */
	@Test public void setDayTest4() {
	    Day day = new Day(0, null);
	    day.setDay(28, null);
	    assertEquals(28, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 13
	 * Purpose: test consistency
	 * Priority: 2
	 */
	@Test public void setDayTest5() {
	    Day day = new Day(0, null);
	    day.setDay(31, null);
	    assertEquals(31, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 14
	 * Purpose: test consistency
	 * Priority: 2
	 */
	@Test public void setDayTest6() {
	    Day day = new Day(0, null);
	    day.setDay(30, null);
	    assertEquals(30, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 15
	 * Purpose: test consistency
	 * Priority: 2
	 */
	@Test public void setDayTest7() {
	    Day day = new Day(0, null);
	    day.setDay(0, null);
	    assertEquals(0, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 16
	 * Purpose: test consistency
	 * Priority: 2
	 */
	@Test public void setDayTest8() {
	    Day day = new Day(0, null);
	    day.setDay(-22, null);
	    assertEquals(-22, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 17
	 * Purpose: test normal condition
	 * Priority: 1
	 */
	@Test public void incrementTest1() {
	    Year year = new Year(2001);
	    Month month = new Month(12, year);
	    Day day = new Day(-10, month);
	    boolean result = day.increment();
	    assertTrue(result);
	    assertEquals(-9, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 18
	 * Purpose: test normal condition
	 * Priority: 1
	 */
	@Test public void incrementTest2() {
	    Year year = new Year(2001);
	    Month month = new Month(12, year);
	    Day day = new Day(11, month);
	    boolean result = day.increment();
	    assertTrue(result);
	    assertEquals(12, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 19
	 * Purpose: test increment condition
	 * Priority: 1
	 */
	@Test public void incrementTest3() {
	    Year year = new Year(2001);
	    Month month = new Month(11, year);
	    Day day = new Day(30, month);
	    boolean result = day.increment();
	    assertFalse(result);
	    assertEquals(31, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 20
	 * Purpose: test non-leap year
	 * Priority: 1
	 */
	@Test public void incrementTest4() {
	    Year year = new Year(1999);
	    Month month = new Month(2, year);
	    Day day = new Day(28, month);
	    boolean result = day.increment();
	    assertFalse(result);
	    assertEquals(29, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 21
	 * Purpose: test leap year
	 * Priority: 1
	 */
	@Test public void incrementTest5() {
	    Year year = new Year(2000);
	    Month month = new Month(2, year);
	    Day day = new Day(28, month);
	    boolean result = day.increment();
	    assertTrue(result);
	    assertEquals(29, day.getDay());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 22
	 * Purpose: test deliberate failure
	 * Priority: 1
	 */
	@Test(expected = NullPointerException.class)
	public void incrementTest6() {
	    Year year = new Year(1999);
	    Month month = null;
	    Day day = new Day(1, month);
	    boolean result = day.increment();
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-20T10:52:05.994000
	 * @version: 0.1
	 * @TCID: 23
	 * Purpose: test deliberate failure
	 * Priority: 1
	 */
	@Test(expected = NullPointerException.class)
	public void incrementTest7() {
	    Year year = null;
	    Month month = new Month(1, year);
	    Day day = new Day(3, month);
	    boolean result = day.increment();
	}
}
